package com.quan.system.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.quan.common.bean.PageBean;
import com.quan.common.core.MyBaseService;
import com.quan.system.common.dto.employee.EmpCountByAreaDTO;
import com.quan.system.common.dto.employee.EmpCountTotalDTO;
import com.quan.system.common.dto.employee.YearHolidayDTO;
import com.quan.system.common.dto.excel.SystemEmployeeImportExcel;
import com.quan.system.entity.SystemEmployee;

/**
 * <p>
 * 员工表 服务类
 * </p>
 *
 * @author 杨浩泉
 * @since 2019-06-24
 */
public interface SystemEmployeeService extends MyBaseService<SystemEmployee> {
	
	/**
	 * 分页查询员工列表
	 * @param entity
	 * @return
	 */
	public IPage<SystemEmployee> selectEmployeePage(SystemEmployee entity, PageBean pageBean) ;
	
	
	/**
	 * 导入员工数据
	 * @param emps 员工数据
	 * @param isAccount 是否同时创建登录账号
	 * @return
	 */
	public Integer importEmpInfoData(List<SystemEmployeeImportExcel> emps, boolean isAccount) ;
	
	/**
	 * 查询当月是否有员工劳动合同到期
	 * @param entity
	 * @return
	 */
	public List<SystemEmployee> selectHTJJDQ() ;
	
	/**
	 * 查询当月是否有年假员工
	 * @param entity
	 * @return
	 */
	public List<SystemEmployee> selectNJJJDQ() ;
	
	/**
	 * 根据籍贯统计员工数量
	 * @return
	 */
	public List<EmpCountByAreaDTO> reportEmpCountByArea() ;
	
	/**
	 * 统计性别
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByGender() ;
	/**
	 * 统计户口性质
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByHktype() ;
	/**
	 * 统计在职状态
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByWorkingStatus() ;
	/**
	 * 统计日语级别
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByJapLevel() ;
	/**
	 * 统计婚姻状况
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByMarital() ;
	/**
	 * 统计学历
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByEdu() ;
	/**
	 * 统计毕业年份员工人数
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByGraduDate() ;
	/**
	 * 统计岗位人数
	 * @return
	 */
	public List<EmpCountTotalDTO> reportEmpCountByPost() ;
	
	/**
	 * 年假发放记录
	 * @return
	 */
	public List<YearHolidayDTO> yearHolidayList(YearHolidayDTO dto) ;
	

}
